A data storage file system may initiate multiple child IOs in order to service an IO request transaction for an end-user. For example, a file read/write IO request from a end-user by a backup application may include a child IO request for LP Segment fingerprints, a child IO request for segment index look up, a child IO request to read container metadata, and a child IO request to read a data segment. All child IOs have to be serviced in order to complete the file read/write IO request. The user request IOs may be initiated as part of backup application workload or may be initiated by a maintenance schedule of the user's operating system such as garbage collection.
FIG. 1 is a block diagram illustrating a conventional storage system. Referring to FIG. 1, storage system 104 includes file system 150 and a storage subsystem 160. Optionally storage system 104 may include a RAID sub-system (not shown). The storage system typically consists of many files stored in storage subsystem 160, representing data of one or more client systems (not shown). The storage subsystem 160 includes storage devices (e.g., HDD/SSD disks) 180. Storage devices 180 include physical storage devices (e.g., HDD/SSD disks) 181-187 where the storage devices include corresponding built-in QoS modules such as QoSs 161-167. Storage devices 181-187 would be connected to the same host bus adapter (HBA), such as HBA 171, and would share the HBA bandwidth in communicating with its corresponding QoS module. Once an IO is dispatched from a disk, control is typically lost with respect to which IO and from which disk HBA 171 would prioritize. File system 150 includes QOS throttling 151 and segment store 115. QoS throttling 151 provides a quality of service priority control mechanism that can throttle data traffic with respect to individual storage devices (e.g., storage devices 181-187). Segment store 115 is configured to segment files into a number of segments to be stored in the storage system.
Quality of Service (QoS) is a data packet prioritization technology, allowing a user to treat time sensitive packets with a higher priority than other packets over a network and/or operating systems. Quality of Service (QoS) may throttle or prioritize internal operations such as Garbage Collection. But QoS throttling or prioritizing has its limitations. For example, QoS throttling is limited to a single disk. Furthermore, QoS at a system level also does not take into consideration the underlying storage device types, i.e., Solid State Drives (SSD) versus traditional Hard Disk Drives (HDD) for optimal scheduling.